{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notes:\n",
    " * run 12, evaluations for label S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/mnt/tess/astronet/checkpoints/extended_20_run_12/1/AstroCNNModel_extended_20201208_221622',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/2/AstroCNNModel_extended_20201208_224926',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/3/AstroCNNModel_extended_20201208_232207',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/4/AstroCNNModel_extended_20201208_235452',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/5/AstroCNNModel_extended_20201209_002749',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/6/AstroCNNModel_extended_20201209_010051',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/7/AstroCNNModel_extended_20201209_013349',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/8/AstroCNNModel_extended_20201209_020639',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/9/AstroCNNModel_extended_20201209_023952',\n",
       " '/mnt/tess/astronet/checkpoints/extended_20_run_12/10/AstroCNNModel_extended_20201209_031323']"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "chkpt_root = '/mnt/tess/astronet/checkpoints/extended_20_run_12'\n",
    "data_files = '/mnt/tess/astronet/tfrecords-20-val/*'\n",
    "tces_file = '/mnt/tess/astronet/tces-v4-val.csv'\n",
    "\n",
    "nruns = 10\n",
    "\n",
    "def load_ensemble(chkpt_root, nruns):\n",
    "    checkpts = []\n",
    "    for i in range(nruns):\n",
    "        parent = os.path.join(chkpt_root, str(i + 1))\n",
    "        if not os.path.exists(parent):\n",
    "            break\n",
    "        all_dirs = os.listdir(parent)\n",
    "        if not all_dirs:\n",
    "            break\n",
    "        d, = all_dirs\n",
    "        checkpts.append(os.path.join(parent, d))\n",
    "    return checkpts\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "paths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running model 1\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 2\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 3\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 4\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 5\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 6\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 7\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 8\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 9\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n",
      "Running model 10\n",
      "Binary prediction threshold: 0.2152499407880693 (orientative)\n",
      "1558 records\n"
     ]
    }
   ],
   "source": [
    "import getpass\n",
    "import os\n",
    "from astronet import predict\n",
    "import tensorflow as tf\n",
    "\n",
    "\n",
    "def run_predictions(path):\n",
    "    predict.FLAGS = predict.parser.parse_args([\n",
    "      '--model_dir', path,\n",
    "      '--data_files', data_files,\n",
    "      '--output_file', '',\n",
    "    ])\n",
    "\n",
    "    return predict.predict()\n",
    "\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "ensemble_preds = []\n",
    "config = None\n",
    "for i, path in enumerate(paths):\n",
    "    print(f'Running model {i + 1}')\n",
    "    preds, config = run_predictions(path)\n",
    "    ensemble_preds.append(preds.set_index('tic_id'))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['disp_E', 'disp_N', 'disp_J', 'disp_S', 'disp_B']\n",
    "\n",
    "lbl_col = 'disp_S'\n",
    "pred_col = 'disp_S_p'\n",
    "lbl_col_i = labels.index(lbl_col)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "agg_preds = {}\n",
    "\n",
    "for preds in ensemble_preds:\n",
    "    for tic_id in preds.index:\n",
    "        if tic_id not in agg_preds:\n",
    "            agg_preds[tic_id] = []\n",
    "\n",
    "        row = preds[preds.index == tic_id]\n",
    "        pred_v = row.values[0]\n",
    "        if len(row.values) > 1:\n",
    "            print(f'Warning: duplicate predictions for {tic_id}')\n",
    "        if pred_v[lbl_col_i] >= config.hparams.prediction_threshold:\n",
    "            agg_preds[tic_id].append(lbl_col)\n",
    "        else:\n",
    "            agg_preds[tic_id].append(preds.columns[np.argmax(pred_v)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_preds = []\n",
    "for tic_id in list(agg_preds.keys()):\n",
    "    counts = {l: 0 for l in labels}\n",
    "    for e in agg_preds[tic_id]:\n",
    "        counts[e] += 1\n",
    "    maxcount = max(counts.values())\n",
    "    counts.update({\n",
    "        'tic_id': tic_id,\n",
    "        'maxcount': maxcount,\n",
    "    })\n",
    "    final_preds.append(counts)\n",
    "    \n",
    "final_preds = pd.DataFrame(final_preds).set_index('tic_id')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "tce_table = pd.read_csv(tces_file, header=0).set_index('tic_id')\n",
    "tce_labels = tce_table[labels]\n",
    "\n",
    "pl = final_preds.join(tce_labels, on='tic_id', how='left', lsuffix='_p')\n",
    "\n",
    "pl.head()\n",
    "pd.set_option('display.max_columns', None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall: 0.46153846153846156\n",
      "Precision: 0.17142857142857143\n"
     ]
    }
   ],
   "source": [
    "ppos = (pl[pred_col] > 0)\n",
    "pos = (pl[lbl_col] > 0)\n",
    "\n",
    "pneg = (pl[pred_col] == 0)\n",
    "neg = (pl[lbl_col] == 0)\n",
    "\n",
    "print('Recall:', len(pl[ppos & pos]) / len(pl[pos]))\n",
    "print('Precision:', len(pl[ppos & pos]) / len(pl[ppos]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "183306276\n",
      "31868634\n",
      "326693475\n",
      "199376584\n",
      "91987762\n",
      "97487520\n"
     ]
    }
   ],
   "source": [
    "for i in pl[pos & pneg][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_E</th>\n",
       "      <th>disp_N</th>\n",
       "      <th>disp_J</th>\n",
       "      <th>disp_S</th>\n",
       "      <th>disp_B</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.042982</td>\n",
       "      <td>0.189711</td>\n",
       "      <td>0.921759</td>\n",
       "      <td>0.010297</td>\n",
       "      <td>0.002274</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.800268</td>\n",
       "      <td>0.069035</td>\n",
       "      <td>0.177214</td>\n",
       "      <td>0.000983</td>\n",
       "      <td>0.001310</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.542991</td>\n",
       "      <td>0.068407</td>\n",
       "      <td>0.355955</td>\n",
       "      <td>0.002918</td>\n",
       "      <td>0.001271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.019560</td>\n",
       "      <td>0.230010</td>\n",
       "      <td>0.969088</td>\n",
       "      <td>0.006021</td>\n",
       "      <td>0.002223</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.067543</td>\n",
       "      <td>0.189023</td>\n",
       "      <td>0.880093</td>\n",
       "      <td>0.003109</td>\n",
       "      <td>0.001598</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.027857</td>\n",
       "      <td>0.141912</td>\n",
       "      <td>0.968307</td>\n",
       "      <td>0.003814</td>\n",
       "      <td>0.000754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.782877</td>\n",
       "      <td>0.068888</td>\n",
       "      <td>0.197541</td>\n",
       "      <td>0.001342</td>\n",
       "      <td>0.001274</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.401092</td>\n",
       "      <td>0.143430</td>\n",
       "      <td>0.555359</td>\n",
       "      <td>0.001947</td>\n",
       "      <td>0.001964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.106629</td>\n",
       "      <td>0.131292</td>\n",
       "      <td>0.773130</td>\n",
       "      <td>0.005958</td>\n",
       "      <td>0.000639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>298647682</th>\n",
       "      <td>0.401717</td>\n",
       "      <td>0.131733</td>\n",
       "      <td>0.441246</td>\n",
       "      <td>0.005108</td>\n",
       "      <td>0.001262</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             disp_E    disp_N    disp_J    disp_S    disp_B\n",
       "tic_id                                                     \n",
       "298647682  0.042982  0.189711  0.921759  0.010297  0.002274\n",
       "298647682  0.800268  0.069035  0.177214  0.000983  0.001310\n",
       "298647682  0.542991  0.068407  0.355955  0.002918  0.001271\n",
       "298647682  0.019560  0.230010  0.969088  0.006021  0.002223\n",
       "298647682  0.067543  0.189023  0.880093  0.003109  0.001598\n",
       "298647682  0.027857  0.141912  0.968307  0.003814  0.000754\n",
       "298647682  0.782877  0.068888  0.197541  0.001342  0.001274\n",
       "298647682  0.401092  0.143430  0.555359  0.001947  0.001964\n",
       "298647682  0.106629  0.131292  0.773130  0.005958  0.000639\n",
       "298647682  0.401717  0.131733  0.441246  0.005108  0.001262"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def compare(ensemble_preds, filter):\n",
    "    result = ensemble_preds[0][filter]\n",
    "    for preds in ensemble_preds[1:]:\n",
    "        result = result.append(preds[filter])\n",
    "    return result\n",
    "\n",
    "compare(ensemble_preds, preds.index == 298647682)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_E_p</th>\n",
       "      <th>disp_N_p</th>\n",
       "      <th>disp_J_p</th>\n",
       "      <th>disp_S_p</th>\n",
       "      <th>disp_B_p</th>\n",
       "      <th>maxcount</th>\n",
       "      <th>disp_E</th>\n",
       "      <th>disp_N</th>\n",
       "      <th>disp_J</th>\n",
       "      <th>disp_S</th>\n",
       "      <th>disp_B</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>279322995</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           disp_E_p  disp_N_p  disp_J_p  disp_S_p  disp_B_p  maxcount  disp_E  \\\n",
       "tic_id                                                                          \n",
       "279322995         0         0        10         0         0        10       0   \n",
       "\n",
       "           disp_N  disp_J  disp_S  disp_B  \n",
       "tic_id                                     \n",
       "279322995       0       0       1       0  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pl[pl.index == 279322995]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PR curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "tics = set(ensemble_preds[0].index.values)\n",
    "\n",
    "tic_index = {v: i for i, v in enumerate(tics)}\n",
    "\n",
    "pred_es = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "for i, preds in enumerate(ensemble_preds):\n",
    "    for row in preds.iterrows():\n",
    "        tic, pred_e = row[0], row[1][lbl_col_i]\n",
    "        pred_es[i][tic_index[tic]] = pred_e\n",
    "\n",
    "lbl_es = np.zeros([len(tic_index)], dtype=np.bool)\n",
    "for row in tce_labels.iterrows():\n",
    "    tic, lbl_e = row[0], row[1][lbl_col]\n",
    "    if tic in tic_index:\n",
    "        lbl_es[tic_index[tic]] = (lbl_e > 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_cond_pos = float(np.sum(lbl_es))\n",
    "\n",
    "def pr_at_th(th):\n",
    "    pred_pos = np.any(pred_es >= th, axis=0)\n",
    "    true_pos = pred_pos & lbl_es\n",
    "    num_pred_pos = int(np.sum(pred_pos))\n",
    "    num_true_pos = int(np.sum(true_pos))\n",
    "    if num_pred_pos == 0:\n",
    "        return 1.0, 0.0\n",
    "    return float(num_true_pos) / float(num_pred_pos), float(num_true_pos) / float(num_cond_pos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.22370428986326435, max R: 1.0, max P: 1.0\n",
      "100% recall at: 1%, threshold: 0.0012969293594903312\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1200x740 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "ps, rs, ths = ([], [], [])\n",
    "th = np.max(pred_es)\n",
    "while th >= 0.0:\n",
    "    p, r = pr_at_th(th)\n",
    "    if p > 0:\n",
    "        ps.append(p)\n",
    "        rs.append(r)\n",
    "    else:\n",
    "        ps.append(1.0)\n",
    "        rs.append(0.0)\n",
    "    ths.append(th)\n",
    "    th -= 0.0005\n",
    "    \n",
    "from sklearn import metrics\n",
    "\n",
    "print(f'AUC: {metrics.auc(rs, ps)}, max R: {max(rs)}, max P: {max(ps)}')\n",
    "    \n",
    "i = len(rs) - 1\n",
    "while rs[i] == 1.0:\n",
    "    i -= 1\n",
    "i += 1\n",
    "print(f'100% recall at: {int(ps[i] * 100)}%, threshold: {ths[i]}')\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(6, 3.7), dpi=200)\n",
    "\n",
    "ax.spines['top'].set_color('#808080')\n",
    "ax.spines['right'].set_color('#808080')\n",
    "ax.spines['left'].set_color('#808080')\n",
    "ax.spines['bottom'].set_color('#808080')\n",
    "ax.tick_params(direction='in', color='#808080')\n",
    "\n",
    "plt.grid(color='#c0c0c0', linestyle='--', linewidth=0.5)\n",
    "\n",
    "plt.ylabel('Precision', fontweight='bold')\n",
    "plt.xlabel('Recall', fontweight='bold')\n",
    "\n",
    "plt.xlim((0.0, 1.0))\n",
    "plt.ylim((0.0, 1.0))\n",
    "\n",
    "_ = plt.plot(rs, ps)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
